﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;

public partial class Empresa_Edit_empresa : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {


        if (!Page.IsPostBack)
        {
            CargarValores(Request.QueryString["nit"]);
            desahabilitar();
        }

        if (Session["nit"] != null)
        {
            if (Request.QueryString["nit"] != Session["nit"].ToString())
            {
                Response.Redirect("/SUEWebSite/Principal.aspx");
            }
            ButtonEliminar.Visible = false;
            if (!Page.IsPostBack)
            {
                CargarValores(Request.QueryString["nit"]);
                desahabilitar();
            }
            
        }

         //-------------------------Lineas Agregadas para la seguridad----------------------------------------------------
        else if (Session["nomUsr"] != null)
        {
            List<String> Permisos = (List<String>)Session["Permisos"];

            if (!Permisos.Contains(System.IO.Path.GetFileName(HttpContext.Current.Request.FilePath)))
                Response.Redirect("/SUEWebSite/Error.aspx");
            else
            {
                ButtonEliminar.Visible = true;
                if (!Page.IsPostBack)
                {
                    CargarValores(Request.QueryString["nit"]);
                    desahabilitar();
                }
                
            }
           
        }
        else Response.Redirect("/SUEWebSite/Principal.aspx");
           
        //-------------------------Lineas Agregadas para la seguridad----------------------------------------------------
   }

    private void CargarValores(string nit)
    {
        try
        {
            Empresa emp = new Empresa().BuscarUnicaEmp(nit);
            TextBoxNit.Text = emp.ObtNit();
            TextBoxNombreEdit.Text = emp.ObtNombre();
            TextBoxTelefono.Text = emp.ObtTel();
            TextBoxEmail.Text = emp.ObtEmail();
            TextBoxPagWeb.Text = emp.ObtPaginaWeb();
            TextBoxExtension.Text = emp.ObtExtension();
            TextBoxDireccion.Text = emp.ObtDir();
            TextBoxNomUsuario.Text = emp.ObtNombreUsuario();
            CargarListSectores(emp.ObtSectorEmp());
            cargarDptos(emp.ObtDpto(), emp.ObtMcpio());
        }
        catch
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.error('No se ha realizado la configuración de departamentos y/o sectores empresariales ', {timeout: 5 , showClose: false });", true);
            ButtonEliminar.Visible = false;
            ButtonModificar.Visible = false;
        }
    }

    private void cargarDptos(string dpto, string mcpio)
    {
        Region reg = new Region();
        List<Region> listReg = reg.listarDepartamentos();

        foreach (Region regdpto in listReg)
        {
            DropDownListDpto.Items.Add(regdpto.ObtNombre());

        }
        DropDownListDpto.Items.FindByValue(dpto).Selected = true;
        cargarMuncipios(dpto, mcpio);
    }

    private void CargarListSectores(string sector)
    {

        DropDownListSectorEmp.Items.Clear();
        SectorEmp Semp = new SectorEmp();
       // DropDownListSectorEmp.Items.Add("Seleccionar Sector");
        List<SectorEmp> listSemp = Semp.consultarSectorEmp();

        foreach (SectorEmp sem in listSemp)
        {

            DropDownListSectorEmp.Items.Add(sem.ObtNombre());


        }
        DropDownListSectorEmp.Items.FindByValue(sector).Selected = true;

    }


    private void cargarMuncipios(string dpto, string mcpio)
    {
        Region reg = new Region();
        List<Region> listReg = reg.listarMunicipios(dpto);
        DropDownListMunicipios.Items.Clear();

        foreach (Region regdpto in listReg)
        {
            DropDownListMunicipios.Items.Add(regdpto.ObtNombre());
            if (regdpto.ObtNombre() == mcpio)
            {
                DropDownListMunicipios.Items.FindByValue(regdpto.ObtNombre()).Selected = true;
            }
        }



    }

    protected void DropDownListDpto_SelectedIndexChanged1(object sender, EventArgs e)
    {
        Region reg = new Region();
        List<Region> listReg = reg.listarMunicipios(DropDownListDpto.SelectedItem.ToString());
        DropDownListMunicipios.Items.Clear();

        foreach (Region regdpto in listReg)
        {
            DropDownListMunicipios.Items.Add(regdpto.ObtNombre());
        }
    }
    protected void ButtonModificar_Click(object sender, EventArgs e)
    {

        TextBoxNombreEdit.Enabled = true;
        TextBoxTelefono.Enabled = true;
        TextBoxEmail.Enabled = true;
        TextBoxPagWeb.Enabled = true;
        TextBoxDireccion.Enabled = true;
        DropDownListSectorEmp.Enabled = true;
        DropDownListDpto.Enabled = true;
        DropDownListMunicipios.Enabled = true;
        TextBoxContrasena.Enabled = true;
        TextBoxContrasena2.Enabled = true;
        TextBoxExtension.Enabled = true;
        ButtonRegistrar.Visible = true;

    }

    private void desahabilitar()
    {
        TextBoxNit.Enabled = false;
        TextBoxNombreEdit.Enabled = false;
        TextBoxTelefono.Enabled = false;
        TextBoxEmail.Enabled = false;
        TextBoxPagWeb.Enabled = false;
        TextBoxDireccion.Enabled = false;
        TextBoxNomUsuario.Enabled = false;
        DropDownListSectorEmp.Enabled = false;
        DropDownListDpto.Enabled = false;
        DropDownListMunicipios.Enabled = false;
        TextBoxContrasena.Enabled = false;
        TextBoxContrasena2.Enabled = false;
        ButtonRegistrar.Visible = false;
        TextBoxExtension.Enabled = false;

    }
    protected void ButtonRegistrar_Click(object sender, EventArgs e)
    {
        string datoContrasena = "";

        if (TextBoxContrasena.Text == "")
        {
            Empresa empContr = new Empresa().BuscarUnicaEmp(Request.QueryString["nit"]);
            datoContrasena = empContr.ObtContrasena();
        }
        else datoContrasena = TextBoxContrasena.Text;

        Empresa emp = new Empresa();
        emp.ActualizarEmpresa(TextBoxNombreEdit.Text, DropDownListSectorEmp.SelectedItem.ToString(), TextBoxPagWeb.Text,
            TextBoxDireccion.Text, TextBoxNomUsuario.Text, datoContrasena, DropDownListDpto.SelectedItem.ToString(),
            DropDownListMunicipios.SelectedItem.ToString(), TextBoxEmail.Text, TextBoxTelefono.Text, TextBoxExtension.Text, Request.QueryString["nit"]);
        
        //Se coloco este codigo para redirigir a Principal cuando edita desde sesion de empresa.
        if (Session["nit"]!= null)
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('Empresa modificada con éxito <br /><center><a href=\"../Principal.aspx\"><img src=\"../images/ok2.png\"/></a></center>');", true);
        ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('Empresa modificada con éxito <br /><div align=\"center\"><a href=\"../empresa/Adm_empresa.aspx\"><img src=\"../images/ok2.png\"/></a></div>');", true);

    }
    protected void ButtonEliminar_Click(object sender, EventArgs e)
    {
        notificacion.Visible = true;
        notificacion.Text = "Esta seguro que desea eliminar esta empresa?";
        ButtonSi.Visible = true;
        ButtonNo.Visible = true;

    }


    protected void ButtonSi_Click(object sender, EventArgs e)
    {
        Empresa emp = new Empresa();
        if (emp.EliminarEmpresa(Request.QueryString["nit"]) == false)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.warning('No se pudo eliminar la empresa, debido a que tiene solicitudes asociadas', {timeout: 4 , showClose: false });", true);
            
            ButtonSi.Visible = false;
            ButtonNo.Visible = false;

        }
        else
            ScriptManager.RegisterStartupScript(this, this.GetType(), "myscript", "$.modaldialog.success('La empresa ha sido eliminada del sistema <br /><div align=\"center\"><a href=\"../empresa/Adm_empresa.aspx\"><img src=\"../images/ok2.png\"/></a></div>');", true);
    }

    protected void ButtonNo_Click(object sender, EventArgs e)
    {
        ButtonNo.Visible = false;
        ButtonSi.Visible = false;
        notificacion.Visible = false;

    }


}
